package ar.com.age.distribuidora.dominio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@Table(name="ListaDePrecio")
public class ListaDePrecio {
	@Id
	@SequenceGenerator(name = "seq_ListaDePrecio", sequenceName = "seq_ListaDePrecio", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_ListaDePrecio")
	@Column(name = "listaDePrecio_id")
	 private Integer id;
	
	@Column(name = "codigo")
	private String  codigo;
	
	@Column(name = "incioVigencia")
	@Temporal(TemporalType.DATE)
	private Date incioVigencia;
	
	@Column(name = "finVigencia")
	@Temporal(TemporalType.DATE)
	private Date finVigencia;
	
	@Column(name = "nombre")
	private String  nombre;

	@OneToMany(cascade = CascadeType.REMOVE) //elimina solo los elementos de la lista... no los productos
	private List<Elemento> elementos;

	
	public ListaDePrecio() {
		
		this.elementos =  new ArrayList<Elemento>();
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public Date getIncioVigencia() {
		return incioVigencia;
	}

	public void setIncioVigencia(Date incioVigencia) {
		this.incioVigencia = incioVigencia;
	}

	public Date getFinVigencia() {
		return finVigencia;
	}

	public void setFinVigencia(Date finVigencia) {
		this.finVigencia = finVigencia;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public List<Elemento> getElementos() {
		return elementos;
	}

	public void setElementos(List<Elemento> elementos) {
		this.elementos = elementos;
	}
	
	public void agregarElemento(Elemento elemento) {
		
		this.elementos.add(elemento);
	}
}
